ATTENTION : Cette page peut être amenée a être modifiée, pensez à la consulter régulièrement
Ce projet, bien que semblant audacieux, est tout à fait à votre portée. J'en veux pour preuve que je ne le sort pas de mon esprit malade. Ce que vous devez faire est décrit ici, et a déjà été brillament réalisé avec succès par des apprentis ingénieurs réseaux de première année (certe d'une autre école) :
- Première partie : afficher une image dans le terminal en ascii art (ne faites pas attention à la section "condition de rendu", quoique la lecture de la charte des projets de l'ESIPE vous sera tout à fait profitable à mon humble avis)
- Deuxième partie : Réutiliser votre code pour afficher des vidéos (de nouveau, ne faites pas attention aux sections "conditions de développement" et "conditions de rendu")
Conditions de rendu applicable à votre cas
Rendu
- le projet doit être envoyé par mail, depuis une adresse ESIEE, au plus tard le 15 avril 2012
- Si vous rencontrez un problème pour m'envoyer votre projet, contactez moi avant le 16.
- le sujet du mail doit commencer par [ASCIIVID LOGIN1 LOGIN2] où LOGIN1 et LOGIN2 sont a remplacer par les login ESIEE des deux membres du binome
- le mail contient une unique pièce jointe, "login1_login2.tgz"
- Un seul trinome et/ou monome au plus sera accepté
- Le projet sera évalué en partie au cours d'une soutenance. Les conditions spécifiques de cette soutenance vous seront commniquées ultérieurement, mais les deux membres d'un même binômes n'auront pas automatiquement la même note.
Contenu
L'archive, une fois décompressée, génèrera un unique dossier login1_login2/ contenant :- un sous dossier bin
- un sous dossier src
- un sous dossier doc
- un sous dossier lib
Le dossier doc devra contenir deux fichiers : user_manual.pdf dev_manual.pdf
user_manual.pdf decris comment installer le programme à partir de l'archive (sans utiliser eclipse pour java), comment le lancer, les fonctionnalité du programme, les bugs. Tout ce qu'un utilisateur du programme doit savoir.
dev_manual.pdf decris comment est écrit le programme : les choix algorithmiques, le design du code, comment rajouter des fonctionnalités, des pistes pour corriger les bugs... Il doit permettre à un développeur de comprendre votre code et de le modifier. Il ne devra surtout pas contenir de code, même des petits bouts. Il peut éventuellement faire référence à un fichier source présent dans le répertoire src/. Ce document est très très important. Il est aussi important, voir plus, que le code lui même pour la notation.
Contenu des dossiers
- Le dossier login1_login2/ devra contenir un fichier Makefile.
- La commande make devra compiler les fichiers sources du répertoire src et placer les fichiers produis dans bin.
- "make clean" effacera les fichiers binaires, "make force" recompilera toutes les cibles.
- La commande de compilation devra utiliser les options de gcc vues en cours : -ansi -pedantic -Wall
- Les projets qui ne compilent pas (error) ne sont pas corrigés.
- Un point en moins par avertissements (warning).
- "make ascii3fr" devra produire un executable "ascii3fr" (dans bin) qui correspond à la partie 1 du projet
-
L'exécutable ascii3fr devra afficher son mode d'emploi s'il est appelé avec le paramètre --help. Le comportement du programme doit être le suivant:
ascii3fr img1 img2 ... imgN [-o out]
imgXXX est un nom d'image dans un des 4 formats mentionnés (PNM, PBM, PGM, PPM). out est le nom du fichier de sortie. Si -o out est omis, la sortie se fera sur la sortie standard. Si les noms d'images sont omis, ils seront lus sur l'entrée standard, de façon à pouvoir utiliser le programme dans des pipes. Les images textes seront écrites les unes après les autres, séparées par une ligne vide. Les options seront gérées avec getopt_long(). - "make asciivid" devra produire un executable "asciivid" (dans bin) qui correspond à la partie 2 du projet
- Pour cette commande vous êtes libre de proposer la syntaxe qui vous plait. Au mimimum elle devra gérée l'option -h / --help (avec getopt_long). Les bibliothèque necessaires (libmpeg2 et ncurses) devront être fournies dans le repertoire lib et une aide pour l'installation proposée.
Il est interdit d'utiliser du code externe (autre que les deux librairies mentionnées, tout code commun à plusieurs projets vaudra zéro pour tous les projets concernés).
Conseils : Testez votre projet dans les conditions d'évaluation avant de l'envoyer : creez un répertoire temporaire, placez-y une copie de l'archive, décompressez la, suivez les étapes décrites dans votre user.pdf. Vérifiez que tout se passe bien. Testez sur une machine de l'école. Si vous rencontrez un problème (code qui "marche" sur votre pc mais pas à l'école), avertissez moi avant la soutenance (suffisament tot pour que je puisse trouver une solution). Les projets seront évalués sous Linux.